DbContext
今天來討論DBConText
並實際來跑一個例子
DBContext是一個微軟提供用來針對DB操作的一個Class
主要用來處理DB之間的CURD
以及管理DB的一些連線等等
接下來透過一個簡單的範例
來練習一下EF Core在mac上的操作
新增一個ASP .NET Core 的應用程式
這裡直接用Console應用程式去做練習
Console應用程式因為不是web,是沒有startup.cs這個程式的
使用dot cl安裝對應的 .NET Core EntityFrameworkCore
在這裡是使用sqllite,微軟有提供各種DB搭配的framework
對照
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
新增DBContent
新增一個Class,繼承DBContext這個class
可以override OnConfiguring 這個方法
在這裡因為是測試,所以先將連接字串寫死,實務上會將這個設定設到
config裡面
optionsBuilder.UseSqlite("Data Source=blogging.db");
//真正在專案裡面會將這個設定寫成confoig
建立要新增的Table Object
在DBContext裡面有新增一個屬性為Movie的DBSet,這裡要新增Movie這個class,到時候透過DBContext根據這個物件去建立出我們要的DB
主程式新增get DB方法及寫入的方法
先在主程式一開始新增一個剛剛建立的DBContext
private static MyDBContext context = new MyDBContext();
這裡在主程式新增兩個方法:
getMove
addMove
Main加入判斷條件
private static MyDBContext context = new MyDBContext();//宣告DBContext
static void Main(string[] args)
{
if (context.Database.EnsureCreated()) //判斷db是不是有存在的方法
{
getMove("before add a db...");
addMove();
getMove("after add a db...");
}
else
{
getMove("before add a db...");
}
Console.WriteLine("Press key...");
Console.ReadKey();
}
從這個簡單的範例可以了解到
DBContext這個class是讓 .net Core可以透過Code First去設計我們的DB
以前的EF 都只能在windows上執行
但隨著 .net Core
也同樣推出對應的EF Core版本
參考資料:
https://dotnettutorials.net/lesson/entity-framework-core/